package com.mmm.station.base.service;


import com.github.pagehelper.PageInfo;

import java.util.List;
import java.util.Map;

public interface BaseService<T> {
	/**
	 * 根据唯一查询
	 * @param id
	 * @return
	 */
	T selectByKey(Long id);

	/**
	 * 获取单条数据
	 * @param entity
	 * @return
	 */
	T selectByEntity(T entity);
	T selectByConditions(Map<String, String> conditions);
	/**
	 * 根据条件查询页面信息
	 * @param conditions
	 * @return
	 */
	PageInfo<List<T>> selectPage(Map<String, String> conditions);

	/**
	 * 根据条件查询列表
	 * @param conditions
	 * @return
	 */
	List<T> selectList(Map<String, String> conditions);

	List<T> selectList(T entity);
	/**
	 * 一一对应注入
	 * @param entity
	 * @return
	 */
	int insert(T entity);

	/**
	 * 不全信息注入
	 * @param entity
	 * @return
	 */
	int insertSelective(T entity);

	/**
	 * 全更新
	 * @param entity
	 * @return
	 */
	int update(T entity);
	/**
	 * 部分更新
	 * @param entity
	 * @return
	 */
	int updateSelective(T entity);
	int updateSelective(Map<String, String> conditions);
	/**
	 * 删除数据
	 * @param entity
	 * @return
	 */
	int delete(T entity);
	int delete(Map<String, String> conditions);

	int deleteByKey(Long id);

	int deleteByIds(List<Long> list);



}